﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Controller;

namespace GUI
{
    public partial class FrmOpretKunde : Form
    {
        // AØ
        private vandspareSystem vandsparesystem; // Associering af vandsparesystem

        public FrmOpretKunde(vandspareSystem vandsparesystem)
        {

            InitializeComponent();

            this.vandsparesystem = vandsparesystem;
        }


        private void ClearTextbokse()
        {
            txtNavn.Clear();
            txtCVR.Clear();
            txtEAN.Clear();
            txtPostnr.Clear();
            txtTLF.Clear();
            txtEmail.Clear();
            txtKonto.Clear();
            txtAdresse.Clear();
        }

        private void tooltip(PictureBox pic, string besked)
        {
            ToolTip toolTip = new ToolTip();
            toolTip.IsBalloon = true;
            toolTip.SetToolTip(pic, besked);
        }

        private bool validerInput()
        {
            int point = 0;

            // Indlæs kundenr (telefonnr)
            if (!InputValidator.INT(txtTLF.Text))
            {
                picTlf.Visible = true;
                tooltip(picTlf, "Ugyldigt tlf.");
                point++;

            }

            // Indlæs navn
            if (txtNavn.Text == "")
            {
                picNavn.Visible = true;
                tooltip(picNavn, "Intast venligst et navn");
                point++;
            }
            else
            {
                picNavn.Visible = false;
            }

            // Indlæs adresse
            if (txtAdresse.Text == "")
            {
                tooltip(picAdresse, "Indtast venligst en adresse");
                picAdresse.Visible = true;
                point++;
            }
            else picAdresse.Visible = false;

            // Indlæs postnr
            if (!InputValidator.INT(txtPostnr.Text))
            {
                tooltip(picPost, "Indtast venligst et postnr (heltal)");
                picPost.Visible = true;
                point++;
            }
            else picPost.Visible = false;


            // Indlæs cvrnr, dog gerne tomt
            if (!InputValidator.INT(txtCVR.Text))
            {
                txtCVR.Text = "0";

            }

            // Indlæs EANnr, dog gerne tomt
            if (!InputValidator.INT(txtEAN.Text))
            {
                txtEAN.Text = "0";
            }

            // Indlæs kontonr
            if (!InputValidator.INT(txtKonto.Text))
            {
                tooltip(picKonto, "Indtast venligst et Kontonr (heltal)");
                picKonto.Visible = true;
                point++;
            }
            else picKonto.Visible = false;

            // Indlæs email
            if (txtEmail.Text == "")
            {
                tooltip(picEmail, "Der er igen e-mail");
                picEmail.Visible = true;
                point++;
            }
            else picEmail.Visible = false;

            if (point == 0) return true;
            else return false;


        }

        // AØ Opret kunde
        private void btnOpretKunde_Click(object sender, EventArgs e)
        {
            int kundenr = 0;
            string navn = "";
            string adresse;
            int postnr;
            string by;
            int cvr;
            int ean;
            long kontonr;
            string email;

            if (validerInput())
            {
                navn = txtNavn.Text;
                adresse = txtAdresse.Text;
                by = "by";
                postnr = Convert.ToInt32(txtPostnr.Text);
                ean = Convert.ToInt32( txtEAN.Text);
                cvr = Convert.ToInt32(txtCVR.Text);
                kontonr = Convert.ToInt32(txtKonto.Text);
                email = txtEmail.Text;
                kundenr = Convert.ToInt32(txtTLF.Text);

                if (vandsparesystem.OpretKunde(kundenr, navn, adresse, by, postnr, ean, cvr, kontonr, email))
                {
                    lblStatus.Text = "Kunden blev oprettet i systemet";
                    ClearTextbokse();
                }
                else
                {
                    MessageBox.Show("Der er desværre sket en fejl!" +
                        "- Send venligst en e-mail til supporten");
                }
            }

        }

        private void FrmOpretKunde_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.DialogResult = DialogResult.OK;
        }

        private void btnLuk_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnRyd_Click(object sender, EventArgs e)
        {
            picAdresse.Visible = picCVR.Visible = picEAN.Visible = picEmail.Visible = picKonto.Visible = picNavn.Visible = picPost.Visible = picTlf.Visible = false;
            ClearTextbokse();

        }
    }
}
